home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / forth / pfe-0.000 / pfe-0 / pfe-0.9.13 / lib / doermake.4th < prev    next >
Encoding:
Text File  |  1994-05-20  |  934 b   |  50 lines

  1. \
  2. \ doermake.4th ---    Library code for pfe.
  3. \
  4. \ (duz 22May94)
  5. \
  6.  
  7. ONLY FORTH ALSO DEFINITIONS
  8.  
  9. \ =======================================================================
  10. \ Leo Brodie's DOER ... MAKE construct:
  11. \ =======================================================================
  12.  
  13. : NOTHING ;
  14.  
  15. : DOER        CREATE    ['] NOTHING >BODY ,
  16.         DOES>    @ >R ;
  17.  
  18. : (MAKE)    R>  DUP CELL+
  19.         DUP CELL+  SWAP @ >BODY !
  20.         @ ?DUP IF  >R  THEN ;
  21.  
  22. : MAKE        STATE @ IF
  23.             POSTPONE (MAKE)  HERE 0 ,
  24.         ELSE
  25.             HERE ' >BODY ! ]
  26.         THEN
  27.         ; IMMEDIATE
  28.  
  29. : ;AND        POSTPONE EXIT  HERE SWAP !
  30.         ; IMMEDIATE
  31.  
  32. : UNDO        ['] NOTHING >BODY  ' >BODY ! ;
  33.  
  34. \ let's test it:
  35.  
  36. DOER TEST
  37. MAKE TEST    CR ." DOER...MAKE " ;
  38. TEST
  39. : T        MAKE TEST ." loaded. " ;AND  TEST ;
  40. T
  41. UNDO TEST
  42. TEST
  43. FORGET TEST
  44.  
  45. \ =======================================================================
  46. \ end of doermake.4th
  47. \ =======================================================================
  48.  
  49. RESET-ORDER
  50.